package main

/**
168. Excel表列名称
给你一个整数 columnNumber ，返回它在 Excel 表中相对应的列名称。
例如：
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例 1：
输入：columnNumber = 1
输出："A"
示例 2：

输入：columnNumber = 28
输出："AB"
示例 3：

输入：columnNumber = 701
输出："ZY"
示例 4：

输入：columnNumber = 2147483647
输出："FXSHRXW"
提示：
1 <= columnNumber <= 231 - 1
*/

func convertToTitle(columnNumber int) (exeStr string) {
	exeArr := []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}

	for columnNumber > 0 {
		if columnNumber < 27 {
			exeStr = exeArr[columnNumber-1] + exeStr
			break
		}
		rem := columnNumber % 26
		nums := columnNumber / 26
		if rem > 0 {
			exeStr = exeArr[rem-1] + exeStr
		} else {
			exeStr = exeArr[nums-2] + "Z" + exeStr
			nums = 0
		}

		columnNumber = nums
	}
	return
}
